adaptive huffman coding